Improve the Aspire VS Code extension funnel#17898
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17898Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17898" |
There was a problem hiding this comment.
Pull request overview
This PR improves the Aspire VS Code extension’s first-run “happy path” funnel by (1) updating the Marketplace README to clearly show AppHost discovery → run/debug → dashboard, and (2) adding new bounded, coarse-grained telemetry events to understand where users drop off (activation/workspace shape, CLI gate checks, AppHost discovery/launch, and running AppHosts view state).
Changes:
- Add new telemetry event catalog entries for activation, CLI availability checks, AppHost discovery results, AppHost launch requested/result, and additional running AppHosts view signals.
- Emit the new telemetry from activation, CLI gating, AppHost discovery, AppHost launch, and the running AppHosts view.
- Update extension README with an animated walkthrough and focused screenshots aligned to the intended user flow.
Show a summary per file
| File | Description |
|---|---|
| extension/telemetry.json | Registers new telemetry event/property classifications for the funnel stages. |
| extension/src/views/AppHostsViewTelemetry.ts | Adds workspace AppHost state/error/candidate-count signals when the view is shown. |
| extension/src/utils/workspace.ts | Adds telemetry for CLI availability checks (gate operation + duration). |
| extension/src/utils/telemetryRegistry.ts | Extends the typed telemetry schema for the new events/properties/measurements. |
| extension/src/utils/appHostDiscovery.ts | Emits discovery result telemetry (source/outcome/duration/candidate counts/language summary). |
| extension/src/services/AppHostLaunchService.ts | Emits launch requested/result telemetry (mode/command/language/outcome/error kind + duration). |
| extension/src/extension.ts | Emits activation telemetry and plumbs CLI-gate operation labels. |
| extension/src/debugger/AspireDebugConfigurationProvider.ts | Labels the debug-time CLI availability gate for telemetry. |
| extension/README.md | Updates Marketplace-facing docs with the “happy path” walkthrough and screenshots. |
Copilot's findings
- Files reviewed: 9/12 changed files
- Comments generated: 1
|
Re-running the failed jobs in the CI workflow for this pull request because 1 job was identified as retry-safe transient failures in the CI run attempt.
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
adamint
left a comment
There was a problem hiding this comment.
Reviewed with four dedicated passes. I did not find any new, non-duplicate high-confidence issues to raise.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Screenshots need more TypeScript, too much C# in here. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Updated the README examples and screenshots/walkthrough to use the TypeScript starter and apphost.mts, including the dashboard/resources view. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Treat VS Code debug launch cancellation separately from launch errors so telemetry and tree-view error UI do not count provider-cancelled launches as failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the weak README animation with a compact static storyboard, use packaged README media paths so PR and marketplace rendering are reliable, and keep launch failures visible when VS Code declines to start an Aspire debug session. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove branch-specific workspace names and temporary paths from the README screenshots so the Marketplace visuals show the intended generic Aspire workflow. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the happy-path storyboard image and update the debug-session screenshot so it clearly shows an AppHost paused at a breakpoint. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
Replace the README screenshots with real cropped VS Code captures and address Copilot review feedback by reusing shared telemetry error classification. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
(automated comment) Post-fix pass on the latest head Review feedback checked:
Validation:
Final review orchestration lanes:
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
(automated comment) Updated the screenshot evidence from one C# + Node Aspire project:
The debugger shot is a real breakpoint hit in Program.cs with AppHost, C# worker, and Node debug sessions attached. Validation: focused E2E proof passed, 1/1. |
Description
Improve the VS Code extension path for users who open an Aspire app in VS Code.
The Marketplace README now shows the AppHost discovery -> run/debug -> dashboard workflow with focused TypeScript AppHost screenshots. The extension also emits bounded telemetry for the first-run funnel so we can see where users drop off:
All new telemetry values are coarse enums/counts. Paths, command output, error messages, and user content are not emitted.
User-facing usage
Users can open an Aspire repo in VS Code, run Aspire: Configure launch.json file, press F5, then use the Aspire view and dashboard while the app runs. The Marketplace page now shows that flow directly.
Screenshot evidence
These are real captures from this branch. The VS Code and dashboard shots now come from the same clean C# + Node Aspire E2E workspace using the repo-built Aspire CLI. The debug shot is paused on a real breakpoint I set in
Program.cs; the call stack shows the AppHost, C# worker, and Node debug sessions attached.Checklist
<remarks />and<code />elements on your triple slash comments?Validation
./build.shfromextension/(Build completed successfully!)corepack yarn run compile-tests && corepack yarn run lintcorepack yarn run unit-test -- --config .vscode-test-pr17898.mjswith a short VS Code user-data path (966 passing,1 pending)packageSurfaceE2E (7/7), andappHostTreeE2E (4/4)ASPIRE_EXTENSION_E2E_SHARD=pr17898-debugger-evidence ... corepack yarn run test:e2e(1/1, captures AppHost view, dashboard, and real breakpoint from the same C# + Node project)upstream/mainmerged into this branch